import axios from "axios";
// import { ElMessage } from "element-plus";
// import global from '../global';
import { baseURL } from '../global';
import router from '../router';

// 创建一个axios对象 用request接收
const instance = axios.create({
    // baseURL: global.baseURL,
    baseURL: baseURL,
    timeout: 5000 // 请求超时时间
});

// 添加请求拦截器
instance.interceptors.request.use(function(config) {
    return config;
}, function(error) {
    // 对请求错误处理
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function(response) {
    if(response.data.code === 999) {
        // 处理session过期重复弹窗问题
        let msgFlag = sessionStorage.getItem('msgFlag')
        if(msgFlag) {
            ElMessage.error(response.data.msg)
            sessionStorage.removeItem('msgFlag', 1)
            setTimeout(() => {
                sessionStorage.removeItem('msgFlag')
            }, 1000)
        }
        router.push('login')
        return false
    }
    // 如果 code === 999 条件不满足，那么会继续执行；如果之前已经处理了 code === 999，不会再次进入这个 code !== 0 条件
    // 2xx范围内的状态码都会触发该函数
    // 对响应数据处理
    if(response.data.code !== 0) {
        //
        console.log(response.data.code)
        console.log('接口请求失败')
        console.log(response)
        ElMessage.error(response.data.msg)
        return false
    }
    if(response.data.data) {
        return response.data.data
    }
    return true
}, function(error) {
    // 超出2xx范围的状态码会触发这个函数
    return Promise.reject(error);
});

export default instance;